# -*- coding:utf-8 -*- 
__date__ = '2022/6/25 8:52 下午'

'''
在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的，
但不知道有几个数字是重复的，也不知道每个数字重复几次。请找出数组中任意一个重复的数字。

Input:{2, 3, 1, 0, 2, 5}

Output:2
'''


class Solution:
  # 使用set去重
  def remove_duplicate_elements(self, nums):
    st = set()
    for item in nums:
      if item not in st:
        st.add(item)
      else:
        return item
    return -1

  def remove_duplicate_elements1(self, nums):
    # 使用字典
    dic = {}
    for item in nums:
      dic.setdefault(item, 0)
      dic[item] += 1
      if dic.get(item) > 1:
        return item
    return -1


if __name__ == '__main__':
  Solution = Solution()
  nums = [2, 3, 1, 5, 4, 5]
  res1 = Solution.remove_duplicate_elements(nums)
  print(res1)
  res2 = Solution.remove_duplicate_elements1(nums)
  print(res2)
